#!/bin/bash

# 启动RuoYi-TDesign后端Java应用的脚本

# 添加自动克隆和初始化功能
echo "=== 克隆和初始化项目 ==="
# 删除现有的micro-tdesign-vue目录（如果存在）
if [ -d "micro-tdesign-vue" ]; then
    echo "删除现有的micro-tdesign-vue目录..."
    rm -rf micro-tdesign-vue
    if [ $? -eq 0 ]; then
        echo "成功删除现有的micro-tdesign-vue目录"
    else
        echo "删除现有的micro-tdesign-vue目录失败"
        exit 1
    fi
fi

# 克隆项目
echo "克隆项目..."
git clone https://gitee.com/blogfz.com/micro-tdesign-vue.git
if [ $? -eq 0 ]; then
    echo "项目克隆成功"
    # 进入项目目录并设置执行权限
    cd micro-tdesign-vue
    if [ -f "start-backend-app.sh" ]; then
        chmod +x start-backend-app.sh
        echo "已设置脚本执行权限"
    else
        echo "警告: 未找到 start-backend-app.sh 脚本"
    fi
    cd ..
else
    echo "项目克隆失败"
    exit 1
fi

echo "开始启动后端Java应用..."

# 检查Docker是否已安装
if ! command -v docker &> /dev/null; then
    echo "错误: 未检测到 Docker，请先安装 Docker"
    exit 1
fi

# 使用Maven Docker镜像构建后端服务
echo "使用Docker构建后端服务..."
docker run --rm \
  -v "$(pwd)":/app \
  -v ~/.m2:/root/.m2 \
  -w /app \
  maven:3.8.4-openjdk-17 \
  mvn clean package -DskipTests -Drevision=1.4.0 || { echo "后端服务构建失败"; exit 1; }

# 创建日志目录
mkdir -p ./logs

# 检查是否成功构建了JAR文件
if [ ! -f ./ruoyi-admin/target/ruoyi-admin.jar ]; then
    echo "错误: 未找到构建产物 ruoyi-admin/target/ruoyi-admin.jar"
    exit 1
fi

# 使用Java Docker镜像运行后端应用
echo "使用Docker运行后端应用..."
docker run -d \
  --name ruoyi-admin \
  -p 8080:8080 \
  -v "$(pwd)/ruoyi-admin/target/ruoyi-admin.jar:/app/ruoyi-admin.jar" \
  -v "$(pwd)/logs:/app/logs" \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e TZ=Asia/Shanghai \
  openjdk:21-jdk \
  java -Xms512m -Xmx1024m \
    -Dserver.port=8080 \
    -Dspring.profiles.active=prod \
    -Duser.timezone=Asia/Shanghai \
    -jar /app/ruoyi-admin.jar

echo "后端应用已启动！"
echo "访问地址: http://localhost:8080"
echo "查看日志: docker logs -f ruoyi-admin"